package cn.ljy.common.utils;

import cn.ljy.common.model.result.ResponseData;
import com.alibaba.fastjson.JSON;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 专门用于输出信息到接口
 * @author ljy
 * 20240722
 */
public class ResponseUtil {

//    /**
//     * 输出信息到客户端，按照规范的接口类型输出
//     * @param response
//     * @param responseData 返回信息封装对象
//     */
//    private static void responseResponseData(HttpServletResponse response,ResponseData responseData){
//        //异常捕获器无法捕获这里的错误信息，要手动抓取并返回错误信息
//        response.setContentType("text/html;charset=utf-8");
//        try {
//            response.getWriter().write(JSON.toJSONString(responseData));
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }

//    /**
//     * 输出信息到客户端，这里主要是在权限验证的时候用来输出错误/提示信息
//     * @param response
//     * @param status
//     * @param message 错误/提示信息
//     */
//    public static void responseJson(HttpServletResponse response,int status,String message){
//        responseJson(response,status,message,null);
//    }

//    /**
//     * 输出信息到客户端，这里主要是在权限验证的时候用来输出错误/提示信息
//     * @param response
//     * @param status
//     * @param data 数据
//     * @param message 错误/提示信息
//     */
/*    public static void responseJson(HttpServletResponse response,int status,String message,Object data){
        response.setHeader("access-control-allow-origin","*");
        response.setHeader("access-control-allow-methods","*");
        response.setContentType("application/jsn;charset=utf-8");
        //因为response.setStatus必须使用http状态码，例如成功的0是不能够使用的，所以要转换下
        if(status== ResultCode.SUCCESS.getCode()){
            response.setStatus(200);
        }else if(status== ResultCode.FORBIDDEN.getCode()){
            response.setStatus(ResultCode.FORBIDDEN.getCode());
        }else{
            response.setStatus(200);
        }
        ResponseData responseData=ResponseData.error(status,message,data);//封装
        responseResponseData(response,responseData);
    }*/

    public static void responseJson(HttpServletResponse response,ResponseData responseData){
        response.setHeader("access-control-allow-origin","*");
        response.setHeader("access-control-allow-methods","*");
        response.setContentType("application/json;charset=utf-8");
        response.setStatus(responseData.getCode());
        //因为response.setStatus必须使用http状态码，例如成功的0是不能够使用的，所以要转换下
//        if(responseData.getCode()== ResultCode.SUCCESS.getCode()){
//            response.setStatus(200);
//        }else{
//            response.setStatus(responseData.getCode());
//        }
        //异常捕获器无法捕获这里的错误信息，要手动抓取并返回错误信息
        try {
            response.getWriter().write(JSON.toJSONString(responseData));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


}
